<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<script>


// var checkInclusion = function(s1, s2) {
//     let sMap = {}
//     let sMap2 = {}
//     let length1 = s1.length
//     let length2 = s2.length - length1 + 1
//     let tmp
//     let flag = true
//     function clearSMap (sMap) {
//         for (var i = 0; i < length1; i++) {
//             if (!sMap[s1[i]]) {
//                 sMap[s1[i]] = 1
//             } else {
//                 sMap[s1[i]]++
//             }
//         }
//         return sMap
//     }
//     clearSMap(sMap)
//     for (var j = 0; j < length2; j++) {
//         tmp = s2.substr(j, length1)
//         sMap2 = {}
//         for (var x = 0; x < tmp.length; x++) {
//             if (s1.indexOf(tmp[x]) !== -1) {
//                 if (!sMap2[tmp[x]]) {
//                     sMap2[tmp[x]] = 1
//                 } else {
//                     sMap2[tmp[x]]++
//                 }
//             }
//         }
//         console.log('tmp:', tmp)
//         console.log('sMap:', JSON.stringify(sMap))
//         console.log('sMap2:', JSON.stringify(sMap2))
//         for (let key in sMap) {
//             if (sMap[key] !== sMap2[key]) {
//                 flag = false
//             }
//         }
//         for (let key in sMap2) {
//             if (sMap[key] !== sMap2[key]) {
//                 flag = false
//             }
//         }
//         // flag = JSON.stringify(sMap2) === JSON.stringify(sMap)
//         if (flag) {
//             return flag
//         } else {
//             flag = true
//         }
//         // clearSMap(sMap)
//     }
//     return false
// };
/**
 * @param {string} s1
 * @param {string} s2
 * @return {boolean}
 */
 var checkInclusion = function(s1, s2) {
    let sMap = {}
    let sMap2 = {}
    let length1 = s1.length
    let length2 = s2.length - length1 + 1
    let tmp
    let flag = true
    for (var i = 0; i < length1; i++) {
        if (!sMap[s1[i]]) {
            sMap[s1[i]] = 1
        } else {
            sMap[s1[i]]++
        }
    }
    for (var j = 0; j < length2; j++) {
        tmp = s2.substr(j, length1)
        sMap2 = {}
        for (var x = 0; x < tmp.length; x++) {
            if (s1.indexOf(tmp[x]) !== -1) {
                if (!sMap2[s1[i]]) {
                    sMap2[s1[i]] = 1
                } else {
                    sMap2[s1[i]]++
                }
            }
        }
        console.log('tmp:', tmp)
        console.log('sMap:', JSON.stringify(sMap))
        console.log('sMap2:', JSON.stringify(sMap2))
        for (let key in sMap) {
            if (sMap[key] !== sMap2[key]) {
                flag = false
            }
        }
        if (flag) {
            return flag
        } else {
            flag = true
        }
    }
    return false
};
var str1 = "ab"

var str2 = "eidbaooo"

console.log(str1)
console.log(str2)
console.log(checkInclusion(str1, str2))
</script>
</body>
</html>